This invention relates to communication systems, and more specifically to communication systems in which the data is encoded.
Communications systems have become ubiquitous, and their capabilities increase daily. A major problem with communications systems is that the bandwidth of the channels available in certain locations is limited, and the projected usage is great. This is particularly true in the case of spacecraft-based communications systems, because they provide what may be the only service to certain regions of the world.
Unfortunately, communications systems are subject to noise, which tends to destroy some of the data bits, or at least makes their decoding subject to errors. For a given channel bandwidth and power, there is compromise between bits which are used for transmitting data and bits which are used for error detection andor correction. The addition of more information bits per unit time necessarily decreases the number of error detection and correction bits which can be transmitted with the data bits, so as the data throughput increases, the error rate also increases.
Channel coding is useful for attaining reliable voice communication in low-received-power environments, such as portable satellite communications transceivers. In general, error control coding reduces the number of data bits which can be transmitted, and so tends to degrade the underlying uncorrected transmission. Thus, there is a fundamental tradeoff between the number of bits allocated to data and the number allocated to error control coding when the data rate of the channel is the limiting factor. Increasing the number of data bits decreases the number of error control code bits, and the channel transmission will be more natural, but more subject to errors due to channel noise. On the other hand, if the number of data bits is too much reduced, and the error control bits increased, the channel transmission will be more reliable, but the data throughput will be reduced.
Convolutional codes are an effective method for protecting communications in noisy channels. In framed systems, convolutional codewords must be terminated to preserve the distance structure of the word near the end of a frame. This requirement requires the addition of M extra xe2x80x9ctailxe2x80x9d bits to the end of a frame, where M is the number of bits in the encoder memory. In a short-burst or short-frame application such as speech transmission, the tail bits consume a significant fraction of the encoded channel bits, which might otherwise be usable to improve the speech quality.
Improved channel performance is desired.
A method according to an aspect of the invention generates a code word of a recursive systematic code in a 2M state M-register encoder from source information organized into N-bit frames. The encoder includes a common input-output port, at least a second output port, and multistage feedback. The method includes the step of storing the first M bits of each frame of the source information, to thereby produce M stored bits. The M stored bits are loaded into corresponding registers of the encoder. The remaining (Nxe2x88x92M) bits of each of the frames are encoded by applying the (Nxe2x88x92M) bits to the common input-output port of the encoder. As a result, or whereby, the encoder changes state with each succeeding bit applied to the common input-output port, systematically encoded information appears at the common input-output port of the encoder, and parity bits appear at the second port of the encoder. Following the step of encoding the remaining (Nxe2x88x92M) bits, the M stored bits are summed with a feedback signal to generate an M-bit intermediate signal, and the intermediate signal is applied to the common input-output port in such a manner that the state of the encoder at the termination of encoding each frame is the same as the state of the encoder after the step of loading.
In one mode of the method of the invention, the encoder is a feedback rate xc2xd encoder. In another mode, the encoder is a feedback rate ⅓ encoder, and the encoder also includes a third output port.